package com.zyg.manager.utils;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zyg.manager.dao.ItemDao;
import com.zyg.manager.entity.ItemEntity;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;
import java.util.Map;


/**
 * ------------------------------
 * 作者: LMY
 * 类-功能: ES工具类,导入数据到索引库
 * 创建时间: 2021-11-02 22:19
 * ------------------------------
 **/
@RunWith(SpringRunner.class)
@SpringBootTest     //此时可以从spring容器中取bean
public class ImportData {

    @Autowired(required = false)
    private ItemDao itemDao;
    //取出ES核心API
    @Autowired(required = false)
    private ElasticsearchRestTemplate restTemplate;

    /**
     * 作者 : LMY
     * 功能 : 将数据从数据库查出，导入ES索引库
     * 时间 : 2021/11/2 22:24
     */
    @Test
    public void importDataToEs(){
        //1. 从数据库中查询出item列表 查询条件：status = 1
        List<ItemEntity> itemEntityList = itemDao.selectList(new QueryWrapper<ItemEntity>().eq("status","1"));
        //2. 遍历
        for (ItemEntity item : itemEntityList) {
            //2.1 取出spec字符串
            String specStr = item.getSpec();
            //2.2 转换成一个map
            Map map = JSON.parseObject(specStr, Map.class);
            //2.3 注入到实体类中
            item.setSpecMap(map);
        }
        //3. 存入索引库
        restTemplate.save(itemEntityList);
        System.out.println("保存到索引库成功");
    }



}
